package com.candoit.webapps.pricing.controllers;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import com.candoit.webapps.pricing.model.Moneda;
import com.candoit.webapps.pricing.util.MonedaUtil;
import com.candoit.webapps.pricing.util.QueryUtil;

@ManagedBean(name = "monedaCtrl")
@ViewScoped
public class MonedaController extends AbstractController {
	
	private List<MonedaUtil> monedas;

	public List<MonedaUtil> getMonedas() {
		List<Moneda> monedasList = QueryUtil.getInstance().getMonedas();
		this.fillMonedas(monedasList);
		return monedas;
	}

	public void setMonedas(List<MonedaUtil> monedas) {
		this.monedas = monedas;
	}
	
	private void fillMonedas(List<Moneda> list){
		monedas = new ArrayList<MonedaUtil>();
		Iterator<Moneda> it = list.iterator();
		while (it.hasNext()){
			   Moneda moneda = (Moneda) it.next();
			   MonedaUtil util = new MonedaUtil();
			   util.setMoneda(moneda);
			   util.setSelected(false);
			   monedas.add(util);
		}
		
		MonedaUtil util = new MonedaUtil();
		Moneda moneda = new Moneda();
		util.setMoneda(moneda);
		util.setSelected(false);
		monedas.add(util);
	}
	
	public void saveMoneda(){
		Iterator<MonedaUtil> it = monedas.iterator();
		while (it.hasNext()){
			   MonedaUtil util = (MonedaUtil) it.next();
			   if (util.getMoneda().getId() == null || util.getMoneda().getId() == 0){
				   if (util.getMoneda().getDescripcion() != null && !util.getMoneda().getDescripcion().equals("")){
					   this.save(util.getMoneda());
				   }
			   }else{
				   this.update(util.getMoneda());
			   }
		}
	}
	
	public void removeMoneda(){
		Iterator<MonedaUtil> it = monedas.iterator();
		while (it.hasNext()){
			MonedaUtil util = (MonedaUtil) it.next();
			if (util.isSelected() && util.getMoneda().getId() != null && util.getMoneda().getId() != 0){
				this.remove(util.getMoneda());
			}	
		}	
	}
	
}
